#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[200005],sum[200005],q;
struct ok{
	int z,id,tag;
}T[800005];
inline int read(){
	int x=0,f=1;char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-') f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		x=(x<<1)+(x<<3)+(ch^48);
		ch=getchar();
	}
	return x*f;
}
void build(int k,int l,int r){
	if(l==r){
		T[k].z=a[l]-sum[l-1];
		T[k].id=l;T[k].tag=0;
		return;
	}
	int mid=(l+r)>>1;
	build(k<<1,l,mid);build((k<<1)^1,mid+1,r);
	if(T[k<<1].z>=T[(k<<1)^1].z) T[k]=T[k<<1];
	else T[k]=T[(k<<1)^1];
}
inline void pushdown(int k,int l,int r){
	T[k<<1].z+=T[k].tag;T[(k<<1)^1].z+=T[k].tag;
	T[k<<1].tag+=T[k].tag;T[(k<<1)^1].tag+=T[k].tag;
	T[k].tag=0;
}
void add(int k,int l,int r,int ll,int rr,int g){
	if(ll<=l&&rr>=r){
		T[k].z+=g;
		T[k].tag+=g;
		return;
	}
	pushdown(k,l,r);
	int mid=(l+r)>>1;
	if(ll<=mid) add(k<<1,l,mid,ll,rr,g);
	if(rr>mid) add((k<<1)^1,mid+1,r,ll,rr,g);
	if(T[k<<1].z>=T[(k<<1)^1].z) T[k]=T[k<<1];
	else T[k]=T[(k<<1)^1];
}
ok query(int k,int l,int r,int ll,int rr){
	if(ll>rr) return (ok){-1,-1,-1};
	if(ll<=l&&rr>=r) return T[k];
	pushdown(k,l,r);
	int mid=(l+r)>>1;ok w;
	bool F=0;
	if(ll<=mid) w=query(k<<1,l,mid,ll,rr),F=1;
	if(rr>mid){
		if(!F) w=query((k<<1)^1,mid+1,r,ll,rr);
		else{
			ok t=query((k<<1)^1,mid+1,r,ll,rr);
			if(t.z>w.z) w=t;
		}
	}
	return w;
}
signed main(){
	freopen("pockets.in","r",stdin);
	freopen("pockets.out","w",stdout);
	n=read();
	for(int i=1;i<n;i++) a[i]=read();
	q=read();
	for(int i=1;i<=q;i++){
		a[n]=read();
		for(int j=1;j<=n;j++) sum[j]=sum[j-1]+a[j];
		build(1,1,n);
		add(1,1,n,1,n,a[1]);
		add(1,1,n,1,n,a[2]);
		int t1=1,t2=2,s1=a[1],s2=a[2];
		while(1){	
//			cerr<<t1<<" "<<t2<<" "<<s1<<" "<<s2<<"\n";
			if(max(t1,t2)==n) break;
			ok d=query(1,1,n,max(t1,t2)+2,n);
			if(d.z>0){
				add(1,1,n,1,n,sum[d.id]-sum[max(t1,t2)]);
				if(t1<t2){
					t1=d.id;s1+=a[d.id];
					s2+=(sum[d.id-1]-sum[t2]);t2=d.id-1;
				}
				else{
					t2=d.id;s2+=a[d.id];
					s1+=(sum[d.id-1]-sum[t1]);t1=d.id-1;
				}
			}
			else{
				if(t1<t2){
					t1=t2+1;s1+=a[t1];
					add(1,1,n,1,n,a[t1]);
				}
				else{
					t2=t1+1;s2+=a[t2];
					add(1,1,n,1,n,a[t2]);
				}
			}
		}
		cout<<s1-s2<<"\n";
	}
	return 0;
}
/*
5
1 3 4 2
4
3
5
10
15
*/
